The present disclosure relates generally to computing systems, and more particularly to cluster debugging.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option is a computing system. Computing systems may vary in complexity from a single processor operating in relative isolation to large networks of interconnected processors. The interconnected processors may be in close proximity to each other or separated by great distances both physically and as distance is measured in computer networking terms. The interconnected processors may also work together in a closely cooperative fashion or in a loose weakly coupled fashion. Because technology and processing needs and requirements may vary between different applications, the structure and arrangement of the computing system may vary significantly between two different computing systems. The flexibility in computing systems allows them to be configured for both specific users, specific uses, or for more general purposes. Computing system may also include a variety of hardware and software components that may be configured to process, store, and communicate information based on the needs of the users and the applications.
Additionally, some examples of computing systems include non-transient, tangible machine-readable media that include executable code that when run by one or more processors, may cause the one or more processors to perform the steps of methods described herein. Some common forms of machine readable media include, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, and/or any other medium from which a processor or computer is adapted to read.
Computing systems generally rely on one or more software components to deliver the services and information required by users and other systems. In many computing systems the one or more software components are designed to operate in a cooperative fashion among several nodes in a cluster. In some examples, one or more of the several nodes may be executing more than one of the one or more software components either in parallel and/or through the use of virtual machines. As the number of nodes in the cluster increases it may become increasingly complex to debug the one or more software components executing on each of the nodes and/or to debug the one or more software components as a whole. As the complexity of each of the one or more software components increases the complexity of the debugging is also likely to increase.
Accordingly, it would be desirable to provide improved methods and systems for debugging software components executing on a cluster of nodes.